package com.DFB.pojo;

import java.math.BigDecimal;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.Version;
import java.time.LocalDateTime;
import com.baomidou.mybatisplus.annotation.TableId;
import java.io.Serializable;
import lombok.Data;
import lombok.EqualsAndHashCode;

/**
 * <p>
 * 订单表
 * </p>
 *
 * @author DFB
 * @since 2023-09-11
 */
@Data
@EqualsAndHashCode(callSuper = false)
public class Order implements Serializable {

    private static final long serialVersionUID=1L;

    /**
     * 订单号唯一标识
     */
    @TableId(value = "oid", type = IdType.ASSIGN_ID)
    private String oid;

    /**
     * 所属用户（买家）
     */
    private String uId;

    /**
     * 所属店铺（卖家）
     */
    private String sId;

    /**
     * 地址id
     */
    private Integer addressId;

    /**
     * 订单状态 1待付款 2待接单 3已接单 4派送中 5已完成 6已取消 7退款
     */
    private Integer status;

    /**
     * 下单时间
     */
    private LocalDateTime oTime;

    /**
     * 结账时间
     */
    private LocalDateTime checkoutTime;

    /**
     * 支付方式：1：微信，2:支付宝
     */
    private Integer payMethod;

    /**
     * 支付状态：0未支付，1已支付，2已退款
     */
    private Integer payStatus;

    /**
     * 实收金额
     */
    private BigDecimal amount;

    /**
     * 备注
     */
    private String remark;

    /**
     * 手机号
     */
    private String phone;

    /**
     * 地址
     */
    private String address;

    /**
     * 用户名称
     */
    private String userName;

    /**
     * 收货人
     */
    private String consignee;

    /**
     * 订单取消原因
     */
    private String cancelReason;

    /**
     * 订单拒绝原因
     */
    private String rejectionReason;

    /**
     * 订单取消时间
     */
    private LocalDateTime cancelTime;

    /**
     * 预计送达时间
     */
    private LocalDateTime estimatedDeliveryTime;

    /**
     * 送达时间
     */
    private LocalDateTime deliveryTime;

    /**
     * 配送状态  1立即送出  0选择具体时间
     */
    private Boolean deliveryStatus;

    /**
     * 打包费(默认0.0)
     */
    private BigDecimal packAmount;

    /**
     * 餐具数量
     */
    private Integer tablewareNumber;

    /**
     * 餐具数量状态  1按餐量提供  0选择具体数量
     */
    private Boolean tablewareStatus;

    /**
     * 乐观锁字段
     */
    @Version
    private Integer version;

    /**
     * 1存在，0删除
     */
    private Integer isExist;

    /**
     * 订单类型(店内，外卖，自提)
     */
    private String type;


}
